package jm.nj.demo04mian.demo04;

import jdk.internal.dynalink.beans.StaticClass;

public class Student {
    String name;
    int age;
    static String country;

    public Student() {
        super();
        System.out.println("构造方法");
       /* for (int i = 0; i < 10; i++) {
            System.out.println(i);
        }*/
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        System.out.println("有参构造方法");
        /*for (int i = 0; i < 5; i++) {
            System.out.println(i);*//*
        }*/
    }

    //构造代码块,定义在类中,方法的外边-->成员位置
    //构造代码块属于每个对象私有的,创建不同的对象,会创建不同的构造代码块

    /*
    * 构造代码块优于构造方法
    * 作用:
    *       1.可以给成员变量赋值
    * 2.可以把构造方法共性内容,提前出来放在构造代码块中
    * */

    {
        name = "构造";
        System.out.println("构造代码块:" + name);
        //构造方法中共性内容
//        for (int i = 0; i < 10; i++) {
//            System.out.println(i);
//        }
    }
        /*
        * 静态代码块,被static修饰的成员代码,被所有的对象所共享
        *
        * 终身只执行一次
        * 只要访问类中成员,都会执行
        * 优先与构造代码块和构造方法
        * 作用:
        *           1.可以给静态成员赋值
        *           2.可以完成一些初始化的操作(数据库)
        * */
    static{
        country = "国家";
        System.out.println("静态代码块");
    }

}
